public class Canal{

    private int[] echantillons;
    private int nbech;
    private int dataout = 0;
    private long datedebut;
    private int mini=0, maxi=0;

    Canal(long size){
	echantillons = new int[(int)size];
    }

    Canal(){
	echantillons = new int[1000000];
    }

    void clear(){
	nbech = 0;
    }

    void addEchantillon(int ech){
	if (nbech < echantillons.length){
	    echantillons[nbech] = ech;
	    if (mini > ech) mini = ech;
	    if (maxi < ech) maxi = ech;
	    nbech ++;
	}
    }

    void initLecture(){
	dataout = 0;
    }

    int getMoyenneEchantillon(int curseur, int nbechparpixel ){
	long res = 0;
	for (int i = curseur ; i < curseur + nbechparpixel && i < echantillons.length ; i++)
	    res = res + echantillons[i];
	return (int)(res / nbechparpixel);
    }

    int getEchantillon(){
	int res = 0;
	if (dataout < nbech){
	    res = echantillons[dataout];
	    dataout ++;
	}
	return res;
    }

    int getNbEch(){
	return nbech;
    }

    int getMini(){
	return mini;
    }

    int getMaxi(){
	return maxi;
    }



    boolean finLecture(){
	return dataout >= nbech;
    }
    
}

	